package com.xugui.learn.pay.pojo.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

/**
 * 交易类型枚举类  根据支付渠道筛选可用的交易类型
 */
@Getter
@AllArgsConstructor
@NoArgsConstructor
public enum TradeType {

    APP("app", "APP支付"),
    JSAPI("jsapi", "公众号/小程序支付"),
    NATIVE("native", "扫码支付"),
    H5("h5", "H5支付");

    private String code;

    private String desc;

    /**
     * 根据 code 获取交易类型的枚举类
     *
     * @param code 交易类型的 code
     * @return 交易类型的枚举类
     */
    public static TradeType getByCode(String code) {
        for (TradeType item : values()) {
            if (item.getCode().equals(code)) {
                return item;
            }
        }
        return null;
    }
}